package com.eupmt.lab3.controllers.impl;

import com.eupmt.lab3.controllers.IReparacioController;
import com.eupmt.lab3.domain.Distribuidor;
import com.eupmt.lab3.domain.NotaReparacio;
import com.eupmt.lab3.domain.Producte;
import com.eupmt.lab3.domain.TipusReparacio;
import com.eupmt.lab3.persistence.ibatis.dao.NotaReparacioDaoManager;
import com.eupmt.lab3.utils.Log;
import java.util.Date;
import java.util.List;


/**
 *
 * @author Jordi
 */
public class ReparacioController implements IReparacioController {

   //Atributes
   protected static ReparacioController instance = null;
   NotaReparacioDaoManager dao = null;
   private Log log = null;


   //Constructors.
   private ReparacioController() {
      log = new Log();
   }

   public void saveReparacio(NotaReparacio notaReparacio) throws Exception {
      dao=NotaReparacioDaoManager.getInstance();
      dao.saveReparacio(notaReparacio);
   }

   public void insertReparacio(NotaReparacio notaReparacio) throws Exception {
      dao=NotaReparacioDaoManager.getInstance();
      dao.insertReparacio(notaReparacio);
   }

   public void updateReparacio(NotaReparacio notaReparacio) throws Exception {
     dao=NotaReparacioDaoManager.getInstance();
      dao.updateReparacio(notaReparacio);
   }

   public void deleteReparacio(NotaReparacio notaReparacio) throws Exception {
      dao=NotaReparacioDaoManager.getInstance();
      dao.deleteReparacio(notaReparacio);
   }

   public NotaReparacio getNotaReparacioById(int idNotaReparacio) throws Exception {
      dao=NotaReparacioDaoManager.getInstance();
      return dao.getNotaReparacioById(idNotaReparacio);
   }


   public List<NotaReparacio> getNotesReparacioByDistribuidor(int idDistribuidor) throws Exception {
        dao=NotaReparacioDaoManager.getInstance();
      return dao.getNotesReparacioByDistribuidor(idDistribuidor);
    }

    public List<NotaReparacio> getNotesReparacioByProducte(int idProducte) throws Exception {
        dao=NotaReparacioDaoManager.getInstance();
        return dao.getNotesReparacioByProducte(idProducte);
    }

    public List<NotaReparacio> getNotesReparacioByTipusReparacio(int idTipusReparacio) throws Exception {
        dao=NotaReparacioDaoManager.getInstance();
      return dao.getNotesReparacioByTipusReparacio(idTipusReparacio);
    }

    public List<NotaReparacio> getNotesReparacioBetweenDates(Date dataInici, Date dataFi) throws Exception {
        dao=NotaReparacioDaoManager.getInstance();
      return dao.getNotesReparacioBetweenDates(dataInici, dataFi);

    }

   // Patro Singleton
   public static ReparacioController getInstance() {
      if (instance == null) {
         instance = new ReparacioController();
      }
      return instance;
   }


    }




